tools/utils/src/modules/array-[number-boolean].js

  1. /**
  2. * @module @svizzle/utils/array-[number-boolean]
  3. */
  4. import * as _ from 'lamb';
  5. /**
  6. * Return a function expecting a number and returning true if the number is within the provided range.
  7. * Note that the range is inclusive.
  8. *
  9. * @function
  10. * @arg {array} range - Array of two numbers
  11. * @return {function} predicate - Number -> Boolean
  12. *
  13. * @example
  14. > isWithinRange = makeIsWithinRange([0, 5])
  15. > isWithinRange(2)
  16. true
  17. > isWithinRange(5)
  18. true
  19. > isWithinRange(8)
  20. false
  21. *
  22. * @since 0.1.0
  23. */
  24. export const makeIsWithinRange = range => _.allOf([
  25. _.isGTE(range[0]),
  26. _.isLTE(range[1])
  27. ]);